﻿using Config.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using YamlDotNet.Serialization;

namespace Merge
{
    public interface IMergeSettings
    {
        [Option(Alias = "已选筛选规则", DefaultValue = new string[] { })]
        string[] ActiveFilters { get; set; }

        [Option(Alias = "输入.上次文件夹", DefaultValue = "C:/")]
        string LastSelectedFolder { get; set; }

        [Option(Alias = "输入文件夹", DefaultValue = new string[] { })]
        string[] InputDirs { get; set; }
        [Option(Alias = "输出.普通", DefaultValue = "normal_dxf.dxf")]
        string OutputNormalDxf { get; set; }
        [Option(Alias = "输出.超大", DefaultValue = "large_dxf.dxf")]
        string OutputLargeDxf { get; set; }
        [Option(Alias = "输出.日志", DefaultValue = "merge_logs.txt")]
        string OutputLogsFile { get; set; }
        [Option(Alias = "格子.普通宽度", DefaultValue = 4000d)]
        double GridNormalWidth { get; set; }

        [Option(Alias = "格子.普通高度", DefaultValue = 4000d)]
        double GridNormalHeight { get; set; }

        [Option(Alias = "格子.超大宽度", DefaultValue = 10000d)]
        double GridLargeWidth { get; set; }

        [Option(Alias = "格子.超大高度", DefaultValue = 10000d)]
        double GridLargeHeight { get; set; }

        [Option(Alias = "格子.空行", DefaultValue = true)]
        bool GridSpaceLine { get; set; }

        [Option(Alias = "文件夹.文本左移", DefaultValue = -5800d)]
        double TextFolderLeftX { get; set; }
        [Option(Alias = "文件夹.文本高度", DefaultValue = 300d)]
        double TextFolderHeight { get; set; }
        [Option(Alias = "文件夹.起始号", DefaultValue = 1)]
        int FolderStartIndex { get; set; }
        [Option(Alias = "文件夹.后加横线", DefaultValue = false)]
        bool FolderNeedAppendLine { get; set; }

        [Option(Alias = "图片.文本右移", DefaultValue = 200d)]
        double TextImageRightX { get; set; }
        [Option(Alias = "图片.文本高度", DefaultValue = 100d)]
        double TextImageHeight { get; set; }
        [Option(Alias = "图片.文本行数", DefaultValue = 3)]
        int TextImageRows { get; set; }

        [Option(Alias = "按板材分类", DefaultValue = false)]
        bool IsFilterMode { get; set; }

        [Option(Alias = "只测试分类", DefaultValue = false)]
        bool OnlyTestFilter { get; set; }

        [Option(Alias = "允许筛选器列表排序", DefaultValue = true)]
        bool AllowFilterDrop { get; set; }

        [Option(Alias = "索引是否显示", DefaultValue = false)]
        bool NeedShowIndex { get; set; }

        [Option(Alias = "模糊匹配小数点", DefaultValue = false)]
        bool FuzzyMatchDot { get; set; }

        [Option(Alias = "提取件数", DefaultValue = false)]
        bool ExtractCopyCount { get; set; }

        [Option(Alias = "提取失败时显示问号", DefaultValue = true)]
        bool ShowQuestionMarkOnFailure { get; set; }

    }
}
